package net.lab1024.sa.admin.module.users.approval.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDate;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import org.checkerframework.checker.units.qual.N;

/**
 * 实训室耗材审批管理 新建表单
 *
 * @Author 王俊权
 * @Date 2024-11-06 10:32:23
 * @Copyright 🐂🐎bloc
 */

@Data
public class ConsumablesPurchaseApprovalAddForm {

    @Schema(description = "采购日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "采购日期 不能为空")
    private Timestamp purchaseDate;

    @Schema(description = "请购部门", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "请购部门 不能为空")
    private String department;

    @Schema(description = "申请人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "申请人 不能为空")
    private Integer applicant;

    @Schema(description = "申请人电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "申请人电话 不能为空")
    private String applicantPhone;

    @Schema(description = "耗材名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "耗材名称 不能为空")
    private String materialName;

    @Schema(description = "规格", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String specification;

    @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "数量 不能为空")
    private Integer quantity;

    @Schema(description = "单价（元）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "单价（元） 不能为空")
    private BigDecimal unitPrice;

    @Schema(description = "金额（元）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "金额（元） 不能为空")
    private BigDecimal totalAmount;

    @Schema(description = "存放地点", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "存放地点 不能为空")
    private String storageLocation;

    @Schema(description = "采购渠道", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "采购渠道 不能为空")
    private String purchaseChannel;

    @Schema(description = "预算采购金额（元）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "预算采购金额（元） 不能为空")
    private BigDecimal budgetAmount;

    @Schema(description = "经费项目名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "经费项目名称 不能为空")
    private String projectName;

    @Schema(description = "经费项目编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "经费项目编号 不能为空")
    private String projectId;

    @Schema(description = "使用部门副职意见（包括签名和日期）0表示不同意 1表示同意", requiredMode = Schema.RequiredMode.NOT_REQUIRED)

    private Integer deputyHeadOpinion;

    @Schema(description = "使用部门正职意见（包括签名和日期）0表示不同意 1表示同意", requiredMode = Schema.RequiredMode.NOT_REQUIRED)

    private Integer headOpinion;

    @Schema(description = "职能部门意见（大于2万元，包括签名和日期）0表示不同意 1表示同意", requiredMode = Schema.RequiredMode.NOT_REQUIRED)

    private Integer functionDepartmentOpinion;

    @Schema(description = "教学主管领导意见（大于2万元，包括签名和日期）0表示不同意 1表示同意", requiredMode = Schema.RequiredMode.NOT_REQUIRED)

    private Integer teachingLeaderOpinion;

    @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
    private String unit;
    @Schema(description = "类别", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer category;
    @Schema(description = "耗材编码",requiredMode = Schema.RequiredMode.REQUIRED)
    private String materialCode;




}